/*
 * 1.00 2012/09/19
 *
 * Copyright (c) 2012 Motch_bs
 * All rights reserved.
 *
 * このソフトウェアは，Motch_bsに所有される機密情報である。
 * これらの機密情報を漏洩してはならず，Motch_bs の意図する
 * 認可の元においてこれを使用すべし。
 */
package jp.co.ufp.sevendaystask.logics;

import java.util.Calendar;
import java.util.Date;

import jp.co.ufp.sevendaystask.R;
import android.content.Context;
import android.util.Log;

/**
 * 共通処理
 * 
 * <pre>
 * 1.今日の曜日を取得する
 * </pre>
 * 
 * @author Motch_bs
 * 
 */
public class Logic001 {

    /***/
    public static final int TIME_PERSE_ERROR = -1;

    /** 曜日文字列配列 */
    private static String[] menuItems;

    /**
     * 今日の曜日を取得する
     * 
     * <pre>
     * sun=0
     * mon=1
     * tue=2
     * wed=3
     * thr=4
     * fri=5
     * sat=6
     * </pre>
     * 
     * @return
     */
    public static int getTodayWeekDay() {
	Calendar cal = Calendar.getInstance();
	int week = cal.get(Calendar.DAY_OF_WEEK) - 1;
	Log.i("Logic001", "week=" + week);
	return week;
    }

    /**
     * 文字列時刻をint型に変換する
     * 
     * @param timeString
     * @return long
     */
    public static int timeToInt(
	String timeString) {
	if (timeString == null) {
	    return TIME_PERSE_ERROR;
	}
	Integer iHHmm = Integer.valueOf(timeString);
	int iTime = iHHmm.intValue();
	return iTime;
    }

    /**
     * 曜日の配列を返す
     * 
     * @param context
     * @return　 String[]
     */
    public static String[] getMenuItems(
	Context context) {
	if (menuItems == null) {
	    menuItems = context.getResources().getStringArray(R.array.weekNames);
	}
	return menuItems;
    }

    /**
     * 初期データ
     * 
     * @param context
     * @return
     */
    public static String[] getDefaultData(
	Context context) {
	return context.getResources().getStringArray(R.array.defaultData);
    }

    /**
     * 曜日の文字列を返す
     * 
     * @param context
     * @param position_week
     * @return　String
     */
    public static String getWeekDayString(
	Context context,
	int position_week) {
	menuItems = getMenuItems(context);
	return menuItems[position_week];
    }

    /**
     * 
     * @param time
     * @return
     */
    public static String formatTime(
	String time) {

	if (time != null) {
	    if (time.length() == 4) {
		return time.substring(0, 2) + ":" + time.substring(2, 4);
	    }
	    if (time.length() == 5) {
		return time.replaceAll(":", "");
	    }
	}
	return time;
    }

    public static String getNowTime() {
	return getNowTime(0);
    }

    /**
     * 現在の時刻（時分）を返す。
     * 
     * @return String
     */
    public static String getNowTime(
	int minute) {
	long now = System.currentTimeMillis();
	Calendar c = Calendar.getInstance();
	c.setTime(new Date(now));
	if (minute != 0) {
	    c.add(Calendar.MINUTE, minute);
	}
	int h = c.get(Calendar.HOUR_OF_DAY);
	int m = c.get(Calendar.MINUTE);
	return String.format("%02d", h) + String.format("%02d", m);
    }
}
